1. Field of the Invention
The present invention relates generally to a computer system, and more particularly, to a method for safely instrumenting large binary code used to operate the computer system.
2. Description of the Related Art
In general, computer systems are controlled by computer programs. Computer programs may be developed using a number of different programming languages. The number of different programming languages can be sorted into at least three classifications: high-level, low-level, and machine.
High-level programming languages (e.g., C, C++, Java, etc . . . ) allow programs to be developed that are more or less independent of a particular computer system on which the programs will execute. High-level programming languages are also easier to read, write, and maintain. However, a program written in a high-level language must be translated into a machine language before it can be executed. Translation of the high-level language into the machine language can be performed by either a compiler or an interpreter.
As compared to the high-level language, a low-level language is closer to the machine language necessary for execution of the program. A low-level language contains the same instructions as the machine language, but the instructions and variables are identified by names rather than only numbers. Thus, low-level languages are more readily understood than machine languages. Assembly languages are classified as low-level languages. An assembler program is used to translate assembly language programs into machine language.
Machine languages consist entirely of numbers and are the only languages understood by a computer system. Machine languages are actually sequences of binary instructions consisting of bits (i.e., 0's and 1's). Thus, machine languages are often referred to as binary codes. Machine languages actually control the computer system circuitry. Each type of computer system has its own unique circuitry. Therefore, each type of computer system has its own unique machine language. To be executable by a computer system, every program must be translated into the machine language that the computer system understands.
Binary codes (i.e., machine languages) are easily understood and implemented by computer systems, but are nearly impossible for people to understand and use. However, there are situations when it is necessary for people to work directly with and modify binary codes. In these situations, an original source code (i.e., high-level language version of the program) is usually not available and only a portion of the binary code may actually be understood. A modification or edit of the binary code should be performed in a manner that maintains the binary code's integrity. Otherwise, the binary code may become non-executable or executable with errors.
In view of the foregoing, there is a need for a method for safely editing a binary code to be executed on a computer system. The method should ensure the integrity of the binary code to maintain its proper execution while preventing potentially damaging errors.